// 调用不安全的函数或者方法

// 创建一个不安全的函数
unsafe fn dangerous() {
    println!("dangerous");
}

// 对不安全的代码进行封装
fn foo() {
    let mut x = 5;
    let y = &x as *const i32;
    let z = &mut x as *mut i32;
    unsafe {
        println!("*y is: {}", *y);
        println!("*z is: {}", *z);
    }
}
fn main() {
    unsafe {
        dangerous();
    }

    // dangerous(); // 这里会报错

    foo();
    println!("Hello, world!");
}
